#ifndef FTP_LIB_H
#define FTP_LIB_H

#include <stdio.h>

/*
 * establece el Stream de salida para los mensajes del servidor
 * haciendo que la librería sea más adaptable (en lugar de directamente
 * enviar los mensajes a consola)
 */
void setOutput(FILE *out);
/*
 * Operación que conecta a un host dado, a través de un puerto
 * especificado.
 * host 	= String. Nombre o ip del host
 * puerto	= String. Puerto al que se conecta (Default: 21)
 */
int open(char *host, char *puerto);

/*
 * Cierra la conexión del socket (si ésta existe), y sale del programa.
 */
void quit();

/*
 * Envía el comando USER <username> al servidor FTP, especificando
 * el nombre de usuario. 
 */
void user(char username[]);

/*
 * Envía el comando PASS <pass> al servidor FTP, especificando
 * la contraseña del usuario. 
 */
void pass(char pass[]);

/*
 * Envía el comando PWD al servidor FTP, solicitando el directorio
 * actual. 
 */
void pwd();

/*
 *  Envía el comando CD <dir> al servidor FTP, solicitando el cambio
 *  al directorio especificado.
 */
void cd(char dir[]);

/*
 * Envía el comando list, solicitando la lista de archivos y directorios
 * presentes en el directorio actual, junto con información relevante.
 */
void list();

/*
 * Envía el comando put al servidor, especificando el nombre del archivo
 * a subir.
 */
void put(char file[]);
/*
 * Envía el comando get, especificando el archivo que se desea descargar
 * desde el servidor. Si ya existe un archivo con el mismo nombre, éste
 * se sobreescribirá.
 */
void get(char file[]);

/*
 * Pasa a modo pasivo (el cliente se conecta a un puerto donde el servidor
 * estará escuchando)
 */
void passive();

/*
 * Pasa a modo activo (El cliente abre un puerto y escucha en él, esperando
 * que el servidor realize la conexión)
 */
void active();

#endif /*FTP_LIB_H*/
